/************** Zhihui *****************/
#pragma once
#include <tuple>
#include <utility>
#include "contest_instance.h"
#include "contest_dm.h"

namespace ieda_contest {

class ContestDataManager;

class RegionCalculator {
public:
    // 构造函数
    RegionCalculator() {}
    // return {BeginRowIdx, EndRowIdx, BeginColIdx, EndColIdx}
    virtual std::tuple<int, int, int, int>
    getRegion(idb::IdbInstance *Cell) = 0;
    //这是一个纯虚函数声明。纯虚函数是在基类中声明的虚函数，但在基类中没有提供实现。子类必须提供实现。
    ~RegionCalculator() = default;

};
} // namespace ieda_contest